package constant

// Package constant 定义了系统中使用的常量，包括 HTTP 状态码及其对应的消息
const (
	// SUCCESS 表示请求成功
	// HTTP 200: 服务器已成功处理了请求
	SUCCESS = 200

	// 客户端错误 (4xx)：这些状态码表示客户端可能发生了错误

	// BAD_REQUEST 表示客户端请求有误
	// HTTP 400: 由于包含语法错误，服务器无法理解请求
	BAD_REQUEST = 400

	// UNAUTHORIZED 表示用户未经授权
	// HTTP 401: 请求要求用户进行身份认证
	UNAUTHORIZED = 401

	// FORBIDDEN 表示禁止访问
	// HTTP 403: 服务器理解请求但拒绝执行，权限不足
	FORBIDDEN = 403

	// NOT_FOUND 表示请求的资源不存在
	// HTTP 404: 服务器找不到请求的资源
	NOT_FOUND = 404

	// CONFLICT 表示资源冲突
	// HTTP 409: 请求与服务器当前状态冲突
	CONFLICT = 409

	// 服务器错误 (5xx)：这些状态码表示服务器在处理请求时发生内部错误

	// INTERNAL_ERROR 表示服务器内部错误
	// HTTP 500: 服务器遇到了意外的情况，无法完成请求
	INTERNAL_ERROR = 500

	// SERVICE_UNAVAILABLE 表示服务不可用
	// HTTP 503: 服务器暂时不可用，通常是由于过载或系统维护
	SERVICE_UNAVAILABLE = 503

	// 文件下载相关错误码 (6xx)：这些状态码表示文件下载过程中的错误

	// FILE_NOT_FOUND 表示要下载的文件不存在
	FILE_NOT_FOUND = 601

	// FILE_ACCESS_DENIED 表示文件访问被拒绝
	FILE_ACCESS_DENIED = 602

	// FILE_TOO_LARGE 表示文件太大无法下载
	FILE_TOO_LARGE = 603

	// FILE_DOWNLOAD_FAILED 表示文件下载过程失败
	FILE_DOWNLOAD_FAILED = 604
)

// CodeMessage 定义了错误码对应的默认中文提示信息
// key: 错误码
// value: 对应的错误消息
var CodeMessage = map[int]string{
	SUCCESS:              "操作成功",
	BAD_REQUEST:          "请求参数错误",
	UNAUTHORIZED:         "未授权",
	FORBIDDEN:            "禁止访问",
	NOT_FOUND:            "资源不存在",
	CONFLICT:             "资源冲突",
	INTERNAL_ERROR:       "服务器内部错误",
	SERVICE_UNAVAILABLE:  "服务暂时不可用",
	FILE_NOT_FOUND:       "文件不存在",
	FILE_ACCESS_DENIED:   "文件访问被拒绝",
	FILE_TOO_LARGE:       "文件太大无法下载",
	FILE_DOWNLOAD_FAILED: "文件下载失败",
}
